package com.efast.cafe.portal.dao.api;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import com.efast.cafe.portal.bean.api.PortalApiViewBean;
import com.efast.cafe.portal.bean.api.PortalApiViewQueryBean;
import com.efast.cafe.portal.entity.api.PortalApiView;

public interface PortalApiViewDao {

	void saveView(PortalApiViewBean portalApiView);

	PortalApiView queryById(@Param(value="id")Integer id);

	void deleteView(@Param(value="id")Integer id);

	void updateView(PortalApiView portalApiView);

	List<PortalApiView> queryViewByModuleIdList(PortalApiViewQueryBean queryBean);

	Integer queryViewByModuleIdCount(PortalApiViewQueryBean queryBean);

	List<PortalApiView> checkUniqueViewCode(PortalApiViewBean portalApiView);

	List<PortalApiView> queryViewAll();

	/**
	 * 查询view by viewCode
	 * 
	 * @return
	 */
	public PortalApiViewBean queryByViewCode(@Param(value = "viewCode") String viewCode,
			@Param(value = "systemVer") String systemVer, @Param(value = "systemInd") String systemInd);

	/**
	 * 复制选中的view到新模块中
	 * 
	 * @param viewIds
	 *            指定的view Id列表
	 * @param oldModuleId
	 *            所属模块Id
	 * @param newModuleId
	 *            复制到新模块Id
	 * @return PortalApiViewBean
	 * @Author Administrator
	 * @Date 2017年12月18日
	 */

	public void copyViewByIds(@Param(value = "viewIds") List<Integer> viewIds,
			@Param(value = "oldModuleId") Integer oldModuleId, @Param(value = "newModuleId") Integer newModuleId);

	/**
	 * 查询指定模块下的view Id列表
	 * 
	 * @return List<Integer>
	 * @Author Administrator
	 * @Date 2017年12月18日
	 */
	public List<Integer> queryViewIdsByModuleId(@Param(value = "moduleId") Integer moduleId);

	/**
	 * 查询指定模块下的views列表
	 * @param moduleId
	 * @param code
	 * @param i18nName
	 * @return List<PortalApiView>
	 * @Author Administrator
	 * @Date 2017年12月25日
	 */

	public List<PortalApiView> selectViewByModuleId(@Param(value = "moduleId")Integer moduleId, @Param(value = "viewCode")String code, @Param(value = "i18nName")String i18nName);

	public List<PortalApiView> selectViewsListByMouduleId(@Param(value="moduleId")Integer id);
}